package com.example.springblog.mapper;

import com.example.springblog.model.BlogInfo;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

@Mapper
public interface BlogMapper {
    /**
     * 返回博客列表
     * @return
     */
    @Select("select * from blog where delete_flag = 0")
    List<BlogInfo> selectAll();

    /**
     * 根据博客ID，返回博客信息
     * @param id
     * @return
     */
    @Select("select * from blog where id = #{id}")
    BlogInfo selectById(Integer id);

    /**
     * 更新博客（包括：删除——逻辑删除博客）——所以这个稍微复杂，可以使用.xml来实现，先放一放哈~
     * @param blogInfo
     * @return
     */
    Integer updateBlog(BlogInfo blogInfo);//要根据参数确定是哪种情况，区分处理

    /**
     * 发布博客
     * @param blogInfo
     * @return
     */
    @Insert("insert into blog (title,content,user_id) values (#{title},#{content},#{userId})")//不需要进行什么判断，可以利用注解来写
                                                                                            //用对象来接收的时候，会自动创建与对象中属性名一样的变量
    Integer insertBlog(BlogInfo blogInfo);

}
